# -*- coding:utf-8 -*-

class PagePerformanceData:

    def __init__(self):
        # 加载起始时间
        self.navigation_start = None
        # 定向开始时间（如果发生了HTTP重定向，每次重定向都和当前文档同域的话，就返回开始重定向的fetchStart的值。其他情况，则返回0）
        self.redirect_start = None
        # 重定向结束时间（如果发生了HTTP重定向，每次重定向都和当前文档同域的话，就返回最后一次重定向接受完数据的时间。其他情况则返回0）
        self.redirect_end = None
        # 浏览器发起资源请求时，如果有缓存，则返回读取缓存的开始时间
        self.fetch_start = None
        # 查询DNS的开始时间。如果请求没有发起DNS请求，如keep-alive，缓存等，则返回fetchStart
        self.domain_lookup_start = None
        # 查询DNS的结束时间。如果没有发起DNS请求，同上
        self.domain_lookup_end = None
        # 开始建立TCP请求的时间。如果请求是keep-alive，缓存等，则返回domainLookupEnd
        self.connect_start = None
        # 完成TCP链接的时间。如果是keep-alive，缓存等，同connectStart
        self.connect_end = None
        # 服务器开始响应的时间
        self.response_start = None
        # 发起请求的时间
        self.request_start = None
        # 从图中看是开始渲染dom的时间，具体未知
        self.dom_loading = None
        # 从图中看是dom渲染完成时间，具体未知
        self.dom_complete = None
        # 触发load的时间，如没有则返回0
        self.load_event_start = None
        # load事件执行完的时间，如没有则返回0
        self.load_event_end = None

        # 请求花费时间
        self.request_time = 0
        # 重定向时间
        self.redirect_time = 0
        # DNS解析时间
        self.domain_lookup_time = 0
        # TCP创建连接
        self.connect_time = 0
        # 页面渲染时间
        self.dom_render_time = 0
        # 白屏时间
        self.blank_screen_time = 0
        # 加载时延，从开始加载到页面渲染完毕
        self.page_load_time = 0

        # 请求列表
        self.request_info = []
        # 总失败请求次数
        self.failed_request_count = 0

        # 开始时间
        self.start_time = ''
        # 使用时间
        self.use_time = 0
        # 是否正常
        self.success = True
        # 如果异常，记录异常原因
        self.error_msg = ''
        # 截图文件路径,如果出错了也会自动截图
        self.screenshot_path = ''
